package com.bbva.cbm.web.servlet.spring.operatoria;

import static cbm.commons.UtilitarioFunciones.mostrarResultado;
import static cbm.commons.UtilitarioFunciones.obtenerValorParametro;

import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.ModelAndView;

import cbm.commons.BaseController;
import cbm.commons.ConstantsWeb;
import ejb.cbm.operatoria.entity.ClienteEntity;
import ejb.com.bbva.cbm.service.OperativaServiceLocal;


public class BloqueoTarjetaController  extends BaseController{
	//public BloqueoTarjetaFacadeLocal bloqueoTarjetaFacadeLocal;
	//public TarjetaFacadeLocal tarjetaFacadeLocal;
	
	private OperativaServiceLocal operativaServiceLocal;
	@Autowired
	public void setOperativaServiceLocal(OperativaServiceLocal operativaServiceLocal) {
		this.operativaServiceLocal = operativaServiceLocal;
	}

	public ModelAndView actualizarEstadoImpresion(HttpServletRequest request, HttpServletResponse response){
		return null;
	}
	
	public ModelAndView buscarTarjetas(HttpServletRequest request, HttpServletResponse response){
		String paginaSig    = resources.getString("ajaxrequest");
		String tipoDocumento = obtenerValorParametro(request.getParameter("selTipoDocumento"));
		String numeroDocumento = obtenerValorParametro(request.getParameter("txtNroDocumento"));
		String nombre = obtenerValorParametro(request.getParameter("txtNombre"));
		String primerApellido = obtenerValorParametro(request.getParameter("txtApellidoPaterno"));
		String segundoApellido = obtenerValorParametro(request.getParameter("txtApellidoMaterno"));
		String nroTarjeta = obtenerValorParametro(request.getParameter("txtNroTarjeta"));
		//HttpSession session = request.getSession();
		
		StringBuilder tablaResultado = new StringBuilder();  
		try {
			List<HashMap<String,String>> tarjetascliente = operativaServiceLocal.buscarTarjeta(nroTarjeta, tipoDocumento, numeroDocumento, nombre, primerApellido, segundoApellido);
			
			for (int i = 0; i < tarjetascliente.size(); i++) {				
				tablaResultado.append("<tr>");
				tablaResultado.append("<td class='tceldatabla'>"+mostrarResultado(tarjetascliente.get(i).get("tipodocumento"))+"</td>");
				tablaResultado.append("<td class='tceldatabla'>"+mostrarResultado(tarjetascliente.get(i).get("numerodocumento"))+"</td>");
				String nombrecompleto = mostrarResultado(tarjetascliente.get(i).get("nombrecliente")) + ", " +
				mostrarResultado(tarjetascliente.get(i).get("primerapellido")) + " " + mostrarResultado(tarjetascliente.get(i).get("segundoapellido"));
				tablaResultado.append("<td class='tceldatabla'>"+ nombrecompleto).
				append("/ " + mostrarResultado(tarjetascliente.get(i).get("razonsocial")) + "</td>");
				tablaResultado.append("<td class='tceldatabla'>"+mostrarResultado(tarjetascliente.get(i).get("numerotarjeta"))+"</td>");
				tablaResultado.append("<td class='tceldatabla'>"+mostrarResultado(tarjetascliente.get(i).get("producto"))+"</td>");
				tablaResultado.append("<td class='tceldatabla'>"+mostrarResultado(tarjetascliente.get(i).get("subproducto"))+"</td>");
				tablaResultado.append("<td class='tceldatabla'><input type='radio' name='selTarjeta' ").
				append("onclick='javascript:seleccionaTarjeta("+tarjetascliente.get(i).get("identificadorTarjeta") +", ").
				append("\""+nombrecompleto +"\", \""+ tarjetascliente.get(i).get("producto") + "\", ").
				append(tarjetascliente.get(i).get("indicadorsituacion")+", \""+tarjetascliente.get(i).get("numerodocumento")+"\");' /></td>");
				tablaResultado.append("</tr>");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return new ModelAndView(paginaSig, "responseText", tablaResultado.toString());		
	}
	

	public ModelAndView open(HttpServletRequest request, HttpServletResponse response){
		HttpSession session = null;
		String paginaSig = resources.getString("buscar_tarjeta");
		
		try {
			session = request.getSession();
			session.setAttribute("tiposDocumento", operativaServiceLocal.obtenerTiposDocumento());
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return new ModelAndView(paginaSig);
	}

	public ModelAndView save(HttpServletRequest request, HttpServletResponse response){
		return null;
	}
}